package org.iabako.shared.iservice.user;

import com.google.gwt.user.client.rpc.RemoteService;
import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
import org.iabako.shared.entity.enumeration.IabakoPackage;
import org.iabako.shared.entity.user.Enterprise;
import org.iabako.shared.entity.user.EnterpriseCustomInfo;
import org.iabako.shared.entity.user.User;
import org.iabako.shared.entity.user.UserPayPalToken;
import org.iabako.shared.exception.IabakoUniqueConstraintException;

import java.util.List;

/**
 * Created by jose on 08/12/14.
 */

@RemoteServiceRelativePath("iabakoServices/extranet/signUpService")
public interface SignUpService extends RemoteService {

    Enterprise saveEnterprise(Enterprise enterprise);

    Enterprise saveEnterprise(Enterprise enterprise, List<EnterpriseCustomInfo> customInfoList);

    List<EnterpriseCustomInfo> getCustomInfoList();

    User saveUser(User user) throws IabakoUniqueConstraintException;

    User keyCodeVerification(User user, String value, IabakoPackage signUpIabakoPackage) throws IabakoUniqueConstraintException;

    UserPayPalToken getUserPayPalTokenPayedOrToVerify(String param);

    UserPayPalToken getUserPayPalTokenByTxId(String transactionId);
}
